package com.company.oa.meeting.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.company.oa.meeting.dto.MeetingDTO;
import com.company.oa.meeting.entity.Meeting;

import java.util.Map;

/**
 * 会议服务接口
 */
public interface MeetingService extends IService<Meeting> {
    /**
     * 分页查询会议
     */
    IPage<Meeting> getMeetingPage(int page, int size, Meeting meeting);
    
    /**
     * 创建会议
     */
    boolean createMeeting(MeetingDTO meetingDTO, Long organizerId, String organizerName, Long departmentId, String departmentName);
    
    /**
     * 修改会议
     */
    boolean updateMeeting(MeetingDTO meetingDTO);
    
    /**
     * 取消会议
     */
    boolean cancelMeeting(Long id);
    
    /**
     * 获取会议详情
     */
    Meeting getMeetingDetail(Long id);
    
    /**
     * 查询我组织的会议
     */
    IPage<Meeting> getMyOrganizedMeetings(int page, int size, Long organizerId);
    
    /**
     * 查询我参与的会议
     */
    IPage<Meeting> getMyParticipatedMeetings(int page, int size, Long userId);
    
    /**
     * 确认参加会议
     */
    boolean confirmMeeting(Long meetingId, Long userId);
    
    /**
     * 拒绝参加会议
     */
    boolean rejectMeeting(Long meetingId, Long userId);
    
    /**
     * 获取会议统计数据
     */
    Map<String, Object> getMeetingStatistics(Long userId);
} 